const App = getApp()
const db = wx.cloud.database()
const _ = db.command
let that
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 展开列表
    practicelist: [],
    // 本人是否提交作业
    submit: false,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    that = this
    let UserInfo = App.cache.getUserInfo()
    console.log('获取用户信息:', UserInfo);
    delete UserInfo._id
    that.setData({
      UserInfo: UserInfo,
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    that.getpractice()
    console.log('这是学生端的实践任务');
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  // 列表展开收缩
  listshow(e) {
    console.log(e.currentTarget.dataset);
    let index = e.currentTarget.dataset.active
    let practicelist = that.data.practicelist
    that.setData({
      ['practicelist[' + index + '].show']: !practicelist[index].show
    })
  },

  getpractice() {
    db.collection('practice').where({
      'courseMember.Review': true,
      'courseMember.account': _.in([that.data.UserInfo.account])
    })
      .get({
        success: function (res) {
          let list = res.data
          // 用开始时间减去当前时间来判断实践任务开始了吗
          list.forEach(x => {
            x.stateTime = x.addtime - Date.now()
          })
          console.log('list', list);
          // 获取当前用户是否已经提交了实践任务的作业
          list.forEach(element => {
            // 增加一个临时状态吗，这个状态用于判断这个学生是否提交了这个实践任务的作业，仅用于页面显示，不会上传数据库，所以是临时的
            element.mySubmit = "未提交"
            element.courseMember.forEach(x => {
              if (x.account === that.data.UserInfo.account && x.Submit === true) {
                element.mySubmit = "已提交"
              }
            })
          })
          let newArr = []
          let obj = {};
          //  将数组安排课程来分类
          list.forEach(item => {
            if (!obj[item.courseid]) {
              newArr.push({
                show: false,
                courseid: item.courseid,
                courseName: item.courseName,
                allData: [item]
              });
              obj[item.courseid] = item;
            } else {
              newArr.forEach(ele => {
                if (ele.courseid == item.courseid) {
                  ele.allData.push(item);
                }
              });
            }
          });
          // 让第一个数组是展开状态
          newArr[0].show = true
          console.log('实践任务数据', newArr)
          that.setData({
            practicelist: newArr
          })
        }
      })
  },


  // 事项详情
  mattersDetasil(e) {
    let practiceId = e.currentTarget.dataset.practiceid
    App.route.navTo('/pages/students/practice/details/index', practiceId)
  },
})